﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using SIM.Geo.BE;

namespace SIM.Geo.SE
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de interfaz "ISEMuestraSondaje" en el código y en el archivo de configuración a la vez.
    [ServiceContract]
    public interface ISEMuestraSondaje
    {
        [OperationContract]
        List<MuestraSondaje> ListarMuestraSondaje(int codigoSondaje);

        [OperationContract]
        string InsertarMuestraSondaje(MuestraSondaje request);

        [OperationContract]
        string InsertarMuestraSondajeMovil(MuestraSondaje request);

        [OperationContract]
        string ModificarMuestraSondaje(MuestraSondaje request);

        [OperationContract]
        void EliminarMuestraSondaje(string codigoMuestraSondaje);

        [OperationContract]
        List<MuestraSondajeResponse> BuscarMuestraSondaje(string nombre);

        [OperationContract]
        MuestraSondaje ObtenerMuestraSondaje(string codigoMuestraSondaje);

        [OperationContract]
        string GenerarCodigoMuestraSondaje();
        [OperationContract(Name = "BuscarMuestraSondajePorSondaje")]
        List<buscarMuestraSondaje_Result> BuscarMuestraSondaje(int codigoSondaje);
        [OperationContract]
        List<MuestraSondaje> BuscarMuestraSondajePorcodigo(int codigoSondaje, string codigoMuestraSondaje);
        [OperationContract]
        void ActualizarLeyMuestra(List<MuestraSondaje> request);

        [OperationContract]
        List<MuestraSondajeImportacion> ValidarLeyMuestra(List<MuestraSondajeImportacion> leymuestras);
        [OperationContract]
        List<ListItemString> ObtenerListItem(int codigoSondaje);
        [OperationContract]
        int ValidarInterseccionMuestraSondaje(int codigoSondaje, string codigoMuestraSondaje, double desde, double hasta, int codigoTipoControlCalidad);
        [OperationContract]
        double ObtenerUltimoHasta(int codigoSondaje);
        [OperationContract]
        List<MuestraSondaje> ListarMuestraSondajePorSondajeYTipoControlCalidad(int codigoSondaje, int codigoTipoControlCalidad);
        [OperationContract]
        List<ListItemString> ObtenerListItem1(int codigoSondaje, int codigoTipoControlCalidad);
    }
}
